package test0002;
public class Parser
		implements
			BindingIds,
			ParserBasicInformation,
			TerminalTokens,
			CompilerModifiers,
			OperatorIds,
			TypeIds {
	protected ProblemReporter			problemReporter;
	protected CompilerOptions			options;
	public int							firstToken;																// handle for multiple parsing goals
	public int							lastAct;																//handle for multiple parsing goals
	protected ReferenceContext			referenceContext;
	public int							currentToken;
	private int							synchronizedBlockSourceStart;
	//error recovery management
	protected int						lastCheckPoint;
	protected RecoveredElement			currentElement;
	public static boolean				VERBOSE_RECOVERY			= false;
	protected boolean					restartRecovery;
	protected int						listLength;																// for recovering some incomplete list (interfaces, throws or parameters)
	protected boolean					hasError;
	protected boolean					hasReportedError;
	public static boolean				fineErrorDiagnose			= true;										//TODO remove the static modifier when new diagnose is ready
	public boolean						reportSyntaxErrorIsRequired	= true;
	public boolean						reportOnlyOneSyntaxError	= false;
	protected int						recoveredStaticInitializerStart;
	protected int						lastIgnoredToken, nextIgnoredToken;										// comment
	protected int						lastErrorEndPosition;
	protected boolean					ignoreNextOpeningBrace;
	//internal data for the automat 
	protected final static int			StackIncrement				= 255;
	protected int						stateStackTop;
	protected int[]						stack						= new int[StackIncrement];
	//scanner token 
	public Scanner						scanner;
	//ast stack
	final static int					AstStackIncrement			= 100;
	protected int						astPtr;
	protected AstNode[]					astStack					= new AstNode[AstStackIncrement];
	protected int						astLengthPtr;
	protected int[]						astLengthStack;
	public CompilationUnitDeclaration	compilationUnit;														/*the result from parse()*/
	AstNode[]							noAstNodes					= new AstNode[AstStackIncrement];
	//expression stack
	final static int					ExpressionStackIncrement	= 100;
	protected int						expressionPtr;
	protected Expression[]				expressionStack				= new Expression[ExpressionStackIncrement];
	protected int						expressionLengthPtr;
	protected int[]						expressionLengthStack;
	Expression[]						noExpressions				= new Expression[ExpressionStackIncrement];
	//identifiers stacks 
	protected int						identifierPtr;
	protected char[][]					identifierStack;
	protected int						identifierLengthPtr;
	protected int[]						identifierLengthStack;
	protected long[]					identifierPositionStack;
	//positions , dimensions , .... (what ever is int) ..... stack
	protected int						intPtr;
	protected int[]						intStack;
	protected int						endPosition;															//accurate only when used ! (the start position is pushed into intStack while the end the current one)
	protected int						endStatementPosition;
	protected int						lParenPos, rParenPos;													//accurate only when used !
	//modifiers dimensions nestedType etc.......
	protected boolean					optimizeStringLiterals		= true;
	protected int						modifiers;
	protected int						modifiersSourceStart;
	protected int						nestedType, dimensions;
	protected int[]						nestedMethod;															//the ptr is nestedType
	protected int[]						realBlockStack;
	protected int						realBlockPtr;
	protected boolean					diet						= false;									//tells the scanner to jump over some parts of the code/expressions like method bodies
	protected int						dietInt						= 0;										// if > 0 force the none-diet-parsing mode (even if diet if requested) [field parsing with anonymous inner classes...]
	protected int[]						variablesCounter;
	//===DATA===DATA===DATA===DATA===DATA===DATA===//
	public final static byte			rhs[]						= {0, 2, 2,
			2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
			1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1,
			1, 1, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 2, 1, 2,
			2, 2, 1, 1, 2, 2, 2, 4, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
			1, 2, 3, 3, 2, 2, 1, 3, 1, 3, 1, 2, 1, 1, 1, 3, 0, 3, 1, 1, 1, 1, 1,
			1, 1, 4, 1, 3, 3, 7, 0, 0, 0, 0, 0, 2, 1, 1, 1, 2, 2, 4, 4, 5, 4, 4,
			2, 1, 2, 3, 3, 1, 3, 3, 1, 3, 1, 4, 0, 2, 1, 2, 2, 4, 1, 1, 2, 5, 5,
			7, 7, 7, 7, 2, 2, 3, 2, 2, 3, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 1, 1,
			3, 3, 4, 1, 3, 4, 0, 1, 2, 1, 1, 1, 1, 2, 3, 4, 0, 1, 1, 1, 1, 1, 1,
			1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, 1, 1,
			1, 1, 1, 1, 1, 5, 7, 7, 6, 2, 3, 3, 4, 1, 2, 2, 1, 2, 3, 2, 5, 5, 7,
			9, 9, 1, 1, 1, 1, 3, 3, 5, 2, 3, 2, 3, 3, 3, 5, 1, 3, 4, 1, 2, 5, 2,
			1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 3, 3, 3, 3, 3, 1, 1, 5, 6, 8, 7, 2, 0,
			2, 0, 1, 3, 3, 3, 3, 4, 3, 4, 1, 2, 3, 2, 1, 1, 2, 2, 3, 3, 4, 6, 6,
			4, 4, 4, 1, 1, 1, 1, 2, 2, 0, 1, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 6, 6,
			5, 0, 0, 1, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, 3,
			1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1,
			1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0,
			1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 2, 0, 0, 1, 0, 1, 0, 1, 0,
			1};
	public static char					asb[]						= null;
	public static char					asr[]						= null;
	public static char					nasb[]						= null;
	public static char					nasr[]						= null;
	public static char					terminal_index[]			= null;
	public static char					non_terminal_index[]		= null;
	public static char					term_action[]				= null;
	public final static byte			term_check[]				= {0, 0, 0,
			0, 0, 3, 0, 3, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22,
			0, 24, 25, 25, 4, 5, 6, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
			41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 0, 57,
			58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, 75,
			76, 77, 78, 79, 80, 0, 0, 0, 84, 85, 18, 19, 7, 8, 0, 1, 2, 3, 4, 5,
			6, 7, 8, 9, 10, 11, 12, 22, 21, 24, 25, 0, 26, 27, 28, 55, 31, 32,
			33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
			50, 51, 52, 81, 54, 55, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
			81, 12, 83, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 56, 0,
			84, 85, 0, 4, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0,
			24, 25, 24, 4, 5, 6, 55, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
			42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 56, 57, 58,
			59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76,
			77, 78, 79, 80, 0, 13, 14, 15, 16, 17, 82, 7, 8, 0, 1, 2, 3, 4, 5,
			6, 7, 8, 9, 10, 11, 12, 22, 0, 24, 25, 0, 4, 5, 6, 0, 31, 32, 33,
			34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
			51, 52, 81, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 41,
			82, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 13, 14, 15,
			16, 17, 57, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 22, 0,
			24, 25, 0, 4, 5, 6, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
			42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 27, 54, 55, 56, 57, 58,
			59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0, 70, 71, 72, 73, 74, 75, 76,
			77, 78, 79, 80, 0, 13, 14, 15, 16, 17, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6,
			7, 8, 9, 10, 11, 0, 22, 0, 24, 25, 3, 0, 22, 0, 24, 31, 32, 33, 34,
			35, 36, 37, 38, 39, 91, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
			52, 0, 54, 55, 3, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 40, 82, 0,
			70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0, 0, 0, 18,
			19, 7, 8, 0, 1, 2, 0, 4, 5, 6, 7, 8, 9, 10, 11, 0, 22, 0, 24, 25,
			22, 0, 24, 84, 85, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42,
			43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 3, 57, 58, 59,
			60, 61, 62, 63, 64, 65, 66, 40, 0, 29, 70, 71, 72, 73, 74, 75, 76,
			77, 78, 79, 80, 81, 0, 83, 0, 1, 2, 0, 86, 7, 8, 0, 1, 2, 91, 4, 5,
			6, 7, 8, 9, 10, 11, 0, 22, 82, 24, 25, 87, 22, 89, 84, 85, 31, 32,
			33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49,
			50, 51, 52, 0, 54, 55, 70, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
			0, 1, 2, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 0, 83, 0,
			1, 2, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 3, 24,
			25, 55, 9, 10, 11, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 21, 41,
			42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 54, 55, 0, 57, 58,
			59, 60, 61, 62, 63, 64, 65, 66, 0, 1, 2, 70, 71, 72, 73, 74, 75, 76,
			77, 78, 79, 80, 0, 26, 0, 28, 55, 0, 87, 7, 8, 0, 1, 2, 3, 4, 5, 6,
			7, 8, 0, 0, 0, 12, 22, 0, 24, 25, 24, 9, 10, 11, 25, 31, 32, 33, 34,
			35, 36, 37, 38, 39, 20, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
			52, 30, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 0,
			70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 0, 0, 0, 0, 3, 0, 3, 7,
			8, 0, 1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 12, 22, 0, 24, 25, 25, 9, 10,
			11, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45,
			46, 47, 48, 49, 50, 51, 52, 0, 54, 69, 0, 1, 2, 0, 4, 5, 6, 7, 8,
			25, 7, 8, 0, 0, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 22, 0,
			24, 25, 0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 12, 41,
			42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 23, 54, 0, 30, 0, 3, 4,
			5, 6, 7, 8, 7, 8, 40, 12, 104, 40, 70, 71, 72, 73, 74, 75, 76, 77,
			78, 79, 80, 24, 25, 55, 0, 56, 0, 3, 31, 32, 33, 34, 35, 36, 37, 38,
			39, 103, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 24, 54, 0,
			86, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 1, 2, 41, 4, 5, 6, 7,
			8, 9, 10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 23, 0, 3,
			26, 27, 28, 7, 8, 7, 8, 0, 12, 0, 0, 1, 2, 0, 0, 0, 54, 7, 8, 57,
			58, 59, 60, 61, 62, 63, 64, 65, 66, 22, 0, 22, 0, 3, 24, 25, 29, 30,
			29, 30, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44,
			45, 46, 47, 48, 49, 50, 51, 52, 0, 90, 55, 92, 93, 94, 95, 96, 97,
			98, 99, 100, 101, 102, 67, 68, 0, 1, 2, 69, 0, 0, 22, 7, 8, 90, 0,
			92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, 87, 24, 25, 4, 5,
			6, 7, 8, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
			46, 47, 48, 49, 50, 51, 52, 0, 0, 55, 0, 1, 2, 55, 55, 0, 0, 7, 8,
			55, 12, 67, 68, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 24, 25, 12, 30,
			22, 24, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44,
			45, 46, 47, 48, 49, 50, 51, 52, 0, 0, 55, 0, 1, 2, 53, 7, 8, 0, 7,
			8, 25, 12, 67, 68, 56, 0, 1, 2, 3, 4, 5, 6, 7, 8, 25, 24, 25, 12, 0,
			22, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45,
			46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 0, 7, 8, 4, 5, 6, 7,
			8, 67, 68, 69, 0, 1, 2, 0, 4, 5, 6, 24, 25, 9, 10, 11, 25, 24, 31,
			32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48,
			49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 0, 7, 8, 3, 0, 24, 7, 8, 67, 68,
			69, 0, 1, 2, 0, 4, 5, 6, 24, 25, 22, 24, 41, 42, 43, 31, 32, 33, 34,
			35, 36, 37, 38, 39, 30, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
			52, 0, 0, 55, 89, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10, 11,
			12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 30, 0, 26, 27, 28,
			29, 30, 0, 0, 1, 2, 0, 4, 5, 6, 40, 40, 9, 10, 11, 0, 13, 14, 15,
			16, 17, 18, 19, 20, 53, 29, 56, 56, 22, 0, 0, 0, 0, 1, 2, 3, 4, 5,
			6, 24, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
			23, 25, 0, 26, 27, 28, 29, 30, 0, 0, 1, 2, 0, 4, 5, 6, 69, 40, 9,
			10, 11, 0, 13, 14, 15, 16, 17, 18, 19, 0, 53, 29, 3, 56, 22, 0, 7,
			8, 0, 1, 2, 3, 4, 5, 6, 24, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17,
			18, 19, 20, 21, 22, 23, 88, 55, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4,
			5, 6, 7, 8, 40, 0, 0, 0, 1, 2, 0, 4, 5, 6, 7, 8, 0, 53, 12, 3, 56,
			0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 22, 69, 9, 10, 11, 12, 13, 14, 15,
			16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 0, 9,
			10, 11, 40, 40, 0, 54, 40, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
			66, 0, 53, 22, 3, 56, 0, 0, 7, 8, 0, 1, 2, 3, 4, 5, 6, 30, 69, 9,
			10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26,
			27, 28, 29, 30, 0, 0, 69, 3, 4, 5, 6, 7, 8, 40, 0, 1, 2, 12, 0, 22,
			0, 7, 8, 25, 55, 0, 53, 30, 0, 56, 25, 3, 4, 5, 6, 7, 8, 12, 24, 25,
			12, 0, 69, 25, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42,
			43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 0, 7, 8,
			0, 0, 24, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 0, 24, 25, 22, 9, 10,
			11, 24, 31, 32, 33, 34, 35, 36, 37, 38, 39, 20, 41, 42, 43, 44, 45,
			46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 3, 7, 8, 0, 0, 0, 3,
			3, 67, 68, 7, 8, 7, 8, 0, 12, 12, 53, 24, 25, 22, 22, 25, 0, 0, 31,
			32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48,
			49, 50, 51, 52, 0, 1, 2, 90, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68,
			7, 8, 7, 8, 0, 12, 12, 0, 24, 25, 22, 7, 8, 24, 24, 31, 32, 33, 34,
			35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
			52, 0, 1, 2, 69, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 7, 8,
			0, 12, 12, 53, 24, 25, 22, 7, 8, 24, 24, 31, 32, 33, 34, 35, 36, 37,
			38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2,
			0, 0, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 12, 0, 0, 12, 12, 12,
			24, 25, 23, 40, 0, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 12,
			41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0,
			40, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 53, 12, 12, 12, 24, 25,
			0, 0, 25, 25, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43,
			44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 0, 0, 0, 40, 7, 8, 0,
			0, 24, 3, 3, 67, 68, 7, 8, 0, 0, 55, 12, 12, 0, 24, 25, 22, 0, 25,
			24, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45,
			46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 0, 29, 7, 8, 0, 0, 0, 3,
			3, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 0, 40, 0, 25, 25, 31,
			32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48,
			49, 50, 51, 52, 0, 1, 2, 0, 0, 40, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68,
			7, 8, 0, 0, 0, 12, 12, 3, 24, 25, 0, 0, 25, 25, 24, 31, 32, 33, 34,
			35, 36, 37, 38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
			52, 0, 1, 2, 29, 0, 40, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0,
			0, 12, 12, 3, 24, 25, 0, 0, 0, 25, 24, 31, 32, 33, 34, 35, 36, 37,
			38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2,
			30, 29, 0, 0, 7, 8, 0, 0, 0, 3, 3, 67, 68, 7, 8, 12, 0, 0, 12, 12,
			12, 24, 25, 0, 0, 0, 3, 25, 31, 32, 33, 34, 35, 36, 37, 38, 39, 0,
			41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 0, 30,
			0, 7, 8, 0, 0, 0, 3, 0, 67, 68, 7, 8, 0, 0, 0, 12, 12, 3, 24, 25,
			22, 0, 22, 0, 0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 22, 41, 42, 43,
			44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 1, 2, 89, 30, 29, 29, 7, 8,
			0, 0, 0, 3, 3, 67, 68, 7, 8, 0, 0, 0, 12, 88, 0, 24, 25, 0, 0, 0, 0,
			0, 31, 32, 33, 34, 35, 36, 37, 38, 39, 29, 41, 42, 43, 44, 45, 46,
			47, 48, 49, 50, 51, 52, 0, 1, 2, 29, 29, 29, 0, 7, 8, 0, 0, 0, 3, 0,
			67, 68, 7, 8, 0, 0, 0, 12, 0, 0, 24, 25, 0, 0, 22, 0, 0, 31, 32, 33,
			34, 35, 36, 37, 38, 39, 0, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
			51, 52, 0, 1, 2, 0, 0, 29, 29, 7, 8, 0, 0, 0, 25, 0, 67, 68, 0, 0,
			0, 0, 0, 0, 0, 0, 24, 25, 0, 0, 25, 25, 0, 31, 32, 33, 34, 35, 36,
			37, 38, 39, 29, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 30,
			88, 29, 29, 0, 0, 29, 0, 1, 2, 3, 4, 5, 6, 67, 68, 9, 10, 11, 12,
			13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29,
			30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
			18, 19, 20, 21, 53, 23, 30, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6,
			0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
			0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
			14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0, 1,
			2, 3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
			21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
			10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26,
			27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15,
			16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 29, 30, 0, 1, 2,
			3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
			53, 23, 0, 56, 26, 27, 28, 0, 0, 1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11,
			12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28,
			29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
			17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 3, 4, 5, 6, 0, 0, 9, 10,
			11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27,
			28, 29, 30, 24, 0, 1, 2, 0, 4, 5, 6, 0, 40, 9, 10, 11, 0, 13, 14,
			15, 16, 17, 0, 0, 0, 53, 29, 0, 56, 0, 1, 2, 3, 4, 5, 6, 29, 0, 9,
			10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 29, 0, 26,
			27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
			15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 0, 4, 5, 6, 0,
			0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 22,
			26, 27, 28, 29, 30, 0, 24, 0, 3, 4, 5, 6, 7, 8, 40, 0, 0, 12, 0, 0,
			22, 0, 0, 0, 42, 43, 0, 53, 0, 22, 56, 0, 1, 2, 0, 4, 5, 6, 22, 24,
			9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 29, 40,
			26, 27, 28, 29, 30, 0, 81, 0, 0, 0, 0, 0, 0, 54, 40, 0, 57, 58, 59,
			60, 61, 62, 63, 64, 65, 66, 0, 53, 0, 22, 56, 0, 1, 2, 22, 4, 5, 6,
			29, 24, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
			0, 0, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
			13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 0, 1, 2, 0, 4, 5,
			6, 0, 0, 9, 10, 11, 69, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
			0, 22, 26, 27, 28, 29, 30, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
			13, 14, 15, 16, 17, 18, 19, 20, 21, 53, 23, 0, 56, 26, 27, 28, 0, 0,
			1, 2, 3, 4, 5, 6, 0, 69, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
			20, 21, 22, 23, 0, 0, 26, 27, 28, 22, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0,
			40, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0,
			26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11, 12, 13,
			14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0, 30, 0,
			0, 1, 2, 3, 4, 5, 6, 0, 40, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
			19, 20, 21, 22, 23, 0, 0, 26, 27, 28, 0, 30, 0, 0, 1, 2, 3, 4, 5, 6,
			0, 40, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0,
			0, 26, 27, 28, 0, 30, 0, 3, 4, 5, 6, 7, 8, 0, 0, 40, 12, 3, 4, 5, 6,
			7, 8, 24, 25, 0,};
}